package DAO;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import DBConection.ConexionBD;
import Modelo.*;

public class Costo_Peaje_Dao {

	private Connection conn;

	public Costo_Peaje_Dao() {
		conn = ConexionBD.getConnection();
	}

	public void addCosto_Peaje(Costo_Peaje objCosto_Peaje) {

		try {

			String sql = "INSERT INTO "+ConexionBD.getNombre_BD()+".Tbl_Costos_Peajes(peajeId,categoriaId,Costo,Fecha_Inicio,Fecha_Fin,Estado)"
					+ " VALUES (?, ?, ?, ?, ?, ?)";
			PreparedStatement ps = conn.prepareStatement(sql);

			ps.setInt(1, objCosto_Peaje.getPeajeId());
			ps.setInt(2, objCosto_Peaje.getCategoriaId());
			ps.setFloat(3, objCosto_Peaje.getCosto());
			/*ps.setDate(4, objCosto_Peaje.getFecha_Inicio());
			ps.setDate(5, objCosto_Peaje.getFecha_Fin());*/
			ps.setInt(6, objCosto_Peaje.getEstado());
			
			ps.executeUpdate();

		} catch (SQLException e) {
			e.printStackTrace();
		}
	}	
		public void removeCosto_Peaje(int costoPeajeId) {
			try {
				String sql = "DELETE FROM "+ConexionBD.getNombre_BD()+".Tbl_Costos_Peajes WHERE costoPeajeId=?";
				PreparedStatement ps = conn.prepareStatement(sql);
				ps.setInt(1, costoPeajeId);
				ps.executeUpdate();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		public void editCosto_Peaje(Costo_Peaje objCosto_Peaje) {
			try {
				String sql = "UPDATE "+ConexionBD.getNombre_BD()+".Tbl_Costos_Peajes SET peajeId=?,categoriaId=?,Costo=?,Fecha_Inicio=?,Fecha_Fin=?,Estado=?"
						+ " WHERE costoPeajeId=?";
				PreparedStatement ps = conn.prepareStatement(sql);

				ps.setInt(1, objCosto_Peaje.getPeajeId());
				ps.setInt(2, objCosto_Peaje.getCategoriaId());
				ps.setFloat(3, objCosto_Peaje.getCosto());
				/*ps.setDate(4, objCosto_Peaje.getFecha_Inicio());
				ps.setDate(5, objCosto_Peaje.getFecha_Fin());*/
				ps.setInt(6, objCosto_Peaje.getEstado());
				ps.executeUpdate();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		public List<Costo_Peaje> getAllCosto_Peajes() {
			List<Costo_Peaje> Costo_Peajes = new ArrayList<Costo_Peaje>();
			try {
				String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Costo_Peajees";
				PreparedStatement ps = conn.prepareStatement(sql);
				ResultSet rs = ps.executeQuery();
				while (rs.next()) {
					Costo_Peaje objCosto_Peaje = new Costo_Peaje();
					objCosto_Peaje.setCostoPeajeId(rs.getInt("costoPeajeId"));
					objCosto_Peaje.setPeajeId(rs.getInt("peajeId"));
					objCosto_Peaje.setCategoriaId(rs.getInt("CategoriaId"));					
					objCosto_Peaje.setCosto(rs.getFloat("costo"));
					/*objCosto_Peaje.setFecha_Inicio(rs.getDate("Fecha_Inicio"));
					objCosto_Peaje.setFecha_Inicio(rs.getDate("Fecha_Inicio"));*/
					objCosto_Peaje.setEstado(rs.getInt("Estado"));
					
					Costo_Peajes.add(objCosto_Peaje);
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}

			return Costo_Peajes;
		}

		public Costo_Peaje getCosto_PeajeById(int costoPeajeId) {
			Costo_Peaje objCosto_Peaje = new Costo_Peaje();
			try {
				String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".Tbl_Costos_Peajes WHERE costoPeajeId=?";
				PreparedStatement ps = conn.prepareStatement(sql);
				ps.setInt(1, costoPeajeId);
				ResultSet rs = ps.executeQuery();

				if (rs.next()) {
				
					objCosto_Peaje.setCostoPeajeId(rs.getInt("costoPeajeId"));
					objCosto_Peaje.setPeajeId(rs.getInt("peajeId"));
					objCosto_Peaje.setCategoriaId(rs.getInt("CategoriaId"));					
					objCosto_Peaje.setCosto(rs.getFloat("costo"));
					/*objCosto_Peaje.setFecha_Inicio(rs.getDate("Fecha_Inicio"));
					objCosto_Peaje.setFecha_Inicio(rs.getDate("Fecha_Inicio"));*/
					objCosto_Peaje.setEstado(rs.getInt("Estado"));
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return objCosto_Peaje;
		}	
		
	

}

